/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.jaywalkable.vkeyboard;

import java.util.Map;

/**
 * This interface should be implemented by any class whose instances represents
 * itself as a virtual keyboard. The class must define a method of no
 * arguments called <code>getLayout</code>.
 *
 * @author rubel
 */
public interface VKeyboardLayout {

    /** Zero width non-joiner */
    public static final char ZERO_WIDTH_NON_JOINER = 0x200C;
    /** Zero width joiner */
    public static final char ZERO_WIDTH_JOINER = 0x200D;

    /**
     * Returns the keyboard layout. This is the map between the original keyboard
     * keys and the keys of <code>VKeyboardLayout</code>.
     * 
     * @return Returns the <code>Map</code> that holds <code>VKeyboardLayout</code>
     * layout.
     */
    Map<Character[], Character[]> getLayout();
}
